/*
 * Copyright (c) 2014 Strong Group - 版权所有
 * 
 * This software is the confidential and proprietary information of
 * Strong Group. You shall not disclose such confidential information 
 * and shall use it only in accordance with the terms of the license 
 * agreement you entered into with www.cnstrong.cn.
 */
package com.zuorenke.serialize;

import java.io.IOException;


/**
 *
 * 描述:
 *
 * @author  WQB
 * @created 2014-4-7 上午10:04:03
 * @since   v1.0.0
 */
public interface DataInput {
    
	/**
	 * Read boolean.
	 * 
	 * @return boolean.
	 * @throws IOException
	 */
	boolean readBool() throws IOException;

	/**
	 * Read byte.
	 * 
	 * @return byte value.
	 * @throws IOException
	 */
	byte readByte() throws IOException;

	/**
	 * Read short integer.
	 * 
	 * @return short.
	 * @throws IOException
	 */
	short readShort() throws IOException;

	/**
	 * Read integer.
	 * 
	 * @return integer.
	 * @throws IOException
	 */
	int readInt() throws IOException;

	/**
	 * Read long.
	 * 
	 * @return long.
	 * @throws IOException
	 */
	long readLong() throws IOException;

	/**
	 * Read float.
	 * 
	 * @return float.
	 * @throws IOException
	 */
	float readFloat() throws IOException;

	/**
	 * Read double.
	 * 
	 * @return double.
	 * @throws IOException
	 */
	double readDouble() throws IOException;

	/**
	 * Read UTF-8 string.
	 * 
	 * @return string.
	 * @throws IOException
	 */
	String readUTF() throws IOException;

	/**
	 * Read byte array.
	 * 
	 * @return byte array.
	 * @throws IOException
	 */
	byte[] readBytes() throws IOException;
}